A database is an organized collection of data. Each database is generated from a database schema that provides a blueprint for how the data structures in the database are constructed. The database schema also includes rules and constraints that are enforced when changes are made to the database such as inserting, modifying, or deleting data. A database system enforces these rules and constraints to ensure the integrity of the database. Over time, a database schema is updated as the database evolves. This can include adding, modifying, or deleting data structures from the database. These updates can add or change the functionality of the database.
Traditionally, a database system that is updating the database schema to a newer version requires a period of downtime. In a traditional business environment, the administrator can inform customers that the database system will be down for maintenance for a period of time. During this downtime, active application sessions with the database system are aborted and new application sessions with the database system are delayed until the update is complete. The abortion and delay of application sessions on the database system is an undesirable side effect of the update process. This is particularly true in a cloud environment where customers from different time zones run application sessions on the database system at all times of the day.